

import { isEmptyObject, isEmptyString } from "./utils"

// 用户 信息的本地缓存键名
const KEY_USER_INFO = "KEY_USER_INFO"

// 设备标识 信息的本地缓存键名
const KEY_DEVICE_ID_INFO = "KEY_DEVICE_ID_INFO"

// aduid 信息的本地缓存键名
const KEY_ADUID_INFO = "KEY_ADUID_INFO"

// area 信息的本地缓存键名
const KEY_AREA_INFO = "KEY_AREA_CRABMONEY_INFO"

/**
 * 从本地缓存中获取 用户 信息
 */
export const getUserInfo = () => {
    console.log("读用户缓存：")
    const userInfo = JSON.parse(localStorage.getItem(KEY_USER_INFO) || "{}")
    console.log(userInfo)
    return userInfo
}

/**
 * 将 用户 信息存入缓存
 * @param {Object} userInfo 从后端获取到的 用户 信息
 */
export const setUserInfo = userInfo => {
    //保存静态数据
}

/**
 * 删除本地缓存中的 用户 信息
 */
export const removeUserInfo = () => {
    localStorage.removeItem(KEY_USER_INFO)
}

/**
 * 判断本地缓存中是否存在 用户 信息
 */
export const isLogin = () => {
    return !isEmptyString(getUserInfo().token)
}


/**
 * 从本地缓存中获取 设备标识 信息
 * 
 * @returns {String} device id
 */
export const getDeviceIDInfo = () => {
    const deviceIDInfo = localStorage.getItem(KEY_DEVICE_ID_INFO) || ""
    console.log("读设备ID缓存: " + deviceIDInfo)
    return deviceIDInfo
}

/**
 * 将 设备标识 信息存入缓存
 * @param {String} device id 
 */
export const setDeviceIDInfo = deviceID => {
    try {
        //再保存本地
        localStorage.setItem(KEY_DEVICE_ID_INFO, (deviceID || ""))
    } catch (e) {
    }
}

/**
 * 删除本地缓存中的 device id 信息
 */
export const removeDeviceIDInfo = () => {
    localStorage.removeItem(KEY_DEVICE_ID_INFO)
}


/**
 * 从本地缓存中获取 aduid 信息
 * 
 * @returns {String} aduid
 */
export const getAduidInfo = () => {
    const aduidInfo = localStorage.getItem(KEY_ADUID_INFO) || ""
    console.log("读aduid缓存: " + aduidInfo)
    return aduidInfo
}

/**
 * 将 aduid 信息存入缓存
 * @param {String} aduid  
 */
export const setAduidInfo = aduid => {
    try {
        localStorage.setItem(KEY_ADUID_INFO, (aduid || ""))
    } catch (e) {
    }
}

/**
 * 删除本地缓存中的 aduid 信息
 */
export const removeAduidInfo = () => {
    localStorage.removeItem(KEY_ADUID_INFO)
}



/**
 * 从本地缓存中获取 area 信息
 * 
 * @returns {String} area
 */
export const getAreaInfo = () => {
    const areaInfo = localStorage.getItem(KEY_AREA_INFO) || ""
    console.log("读 area 缓存: " + areaInfo)
    return areaInfo
}

/**
 * 将 area 信息存入缓存
 * @param {String} area  
 */
export const setAreaInfo = area => {
    try {
        localStorage.setItem(KEY_AREA_INFO, (area || ""))
    } catch (e) {
    }
}

/**
 * 删除本地缓存中的 area 信息
 */
export const removeAreaInfo = () => {
    localStorage.removeItem(KEY_AREA_INFO)
}
